package gestores;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import org.omg.CORBA.VersionSpecHelper;

import componentes.Titular;
import dao.DaoLicencia;
import dao.DaoTitular;
import dto.DtoTitular;

/**
 * Clase que se comunica con otros gestores para el intercambio de informacion
 * 
 * @author Facundo
 *
 */

/**
 * @author Matias
 *
 */
public class GestorTitular {
	private static GestorTitular instancia=null;	
	private static Titular titular = null;
	public GestorTitular(){
		
	}
		
	
	/**
	 *  Metodo para obtener una instancia, si existe la devuelve, sino la crea
	 * @return instancia si existe
	 */
	public static GestorTitular getInstance(){
		if (instancia == null) { 
	       instancia= new GestorTitular();
	   }
		return instancia;
	}
	
	
	public void modificarTitular(){
		
	}

	public Titular getTitular(){
		return titular;
	}

	public static boolean guardarTitular(DtoTitular dtoTitular) throws SQLException {
		boolean bandera = false;
		try{
		titular = new Titular(dtoTitular);
		if(!DaoTitular.getInstance().existeTitular(titular)){
			DaoTitular.guardarTitular(titular);
			bandera = true;
		}
		}
		catch(Exception e){
			
		}
		
		return bandera;
	};
	
	
	public ArrayList<Titular> listarTitular(String tipoDNI, String dni, String nombre, String apellido){
		
		ArrayList<Titular> titulares = new ArrayList<>();
		if (tipoDNI.length()!=0 && dni.length()!=0){
			titulares= DaoTitular.getInstance().buscarTitularDNI(tipoDNI, dni);
		}
		else if (apellido.length()!=0){
				if (nombre.length()!=0){
					titulares= DaoTitular.getInstance().buscarTitularNombreApellido(nombre, apellido);	
				}
				else{
					titulares= DaoTitular.getInstance().buscarTitularApellido(apellido);
				}
		}
		else{
			titulares= DaoTitular.getInstance().buscarTitulares();
		}
		
		return titulares;
				

		}


	public void setTitular(Titular titularSeleccionado) {
		titular = titularSeleccionado;
	
		
	}


	public Titular buscarTitular(String numero_documento) {

		Titular titular= DaoTitular.getInstance().buscarTitular(numero_documento);
		
		return titular;
	}
	
}
